'''
整数在程序中的使用非常广泛，Python为了优化速度，使用了小整数对象池， 避免为整数频繁申请和销毁内存空间。
Python 对小整数的定义是 [-5, 257) 这些整数对象是提前建立好的，不会被垃圾回收。在一个 Python 的程序中，所有位于这个范围内的整数使用的都是同一个对象.
同理，单个字母也是这样的。
但是当定义2个相同的字符串时，引用计数为0，触发垃圾回收
'''

a = -5
b = -5
c = 256
d = 256
e = -6
f = -6
g = 257
h = 257
i = 65537
j = 65537
print(id(a))
print(id(b))
print(id(c))
print(id(d))
print(id(e))
print(id(f))
print(id(g))
print(id(h))
print(id(i))
print(id(j))
print(a is b)
print(e is f)
print(g is h)
print(i is j)

print("======")

str1 = "lychiyu world"
str2 = "lychiyu world"
print(str1 is str2)
